package com.wanjl.ssm01.controller;

import com.wanjl.ssm01.entity.Person;
import com.wanjl.ssm01.service.PersonService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

/**
 * @author WanJl
 * @version 1.0
 * @title PersonController
 * @description
 * @create 2024/11/14
 */
@Controller
@RequestMapping("/persons")
public class PersonController {

    @Resource
    private PersonService personService;

    /**
     * 查询所有
     * @return
     */
    //@RequestMapping(method = RequestMethod.GET)
    @GetMapping //rest风格中，查询使用get请求方式
    @ResponseBody
    public List<Person> queryAll(){
        return personService.selectAll();
    }

    /**
     * 新增
     * @param person
     * @return
     */
    @PostMapping //rest风格中，新增使用post请求方式
    @ResponseBody
    public Integer save(@RequestBody Person person){
        return personService.insert(person);
    }

    /**
     * 删除
     * @param id
     * @return
     */
    @DeleteMapping("/{id}") //rest风格中，删除使用delete请求方式，路径参数名要和方法参数名一致
    @ResponseBody
    public Integer remove(@PathVariable Integer id){
        return personService.delete(id);
    }

    /**
     * 修改
     * @param person
     * @return
     */
    @PutMapping //rest风格中，修改使用put请求方式，其余和新增一样
    @ResponseBody
    public Integer edit(@RequestBody Person person){
        return personService.update(person);
    }

    /**
     * 根据id查询
     * @param id
     * @return
     */
    @GetMapping("/{id}")
    @ResponseBody
    public Person queryById(@PathVariable Integer id){
        return personService.selectById(id);
    }

}
